/**
 * 文件名：auth.ts
 * 作者：教务系统开发团队
 * 创建日期：2025-05-15
 * 描述：全局权限检查工具，提供权限验证方法和Vue插件注册
 */

/**
 * 检查用户是否拥有指定权限
 * @param {Array} userPermissions - 用户拥有的权限列表
 * @param {String} requiredPermission - 需要检查的权限标识
 * @returns {Boolean} 是否拥有权限
 */
function checkPermission(userPermissions: string[], requiredPermission: string): boolean {
  if (!userPermissions || !Array.isArray(userPermissions)) {
    return false;
  }
  return userPermissions.includes(requiredPermission);
}

/**
 * 权限检查Vue插件
 */
const PermissionPlugin = {
  install(Vue: any, options: any) {
    /**
     * 全局权限检查方法
     * @param {String} permission - 权限标识
     * @returns {Boolean} 是否拥有权限
     */
    Vue.prototype.$hasPermission = function(permission: string): boolean {
      const userPermissions = this.$store.getters.permissions || [];
      return checkPermission(userPermissions, permission);
    };
  }
};

export default PermissionPlugin;